#ifndef __HTTP_CODE
#define __HTTP_CODE
#include <string>

namespace http {
// Http_1xx 1xx: 信息
#define Http_100 "100 Continue"             //服务器仅接收到部分请求，但是一旦服务器并没有拒绝该请求，客户端应该继续发送其余的请求。
#define Http_101 "101 Switching Protocols"  //服务器转换协议：服务器将遵从客户的请求转换到另外一种协议。
// Http_2xx 2xx: 成功
#define Http_200 "200 OK"                             //请求成功（其后是对GET和POST请求的应答文档。）
#define Http_201 "201 Created"                        //请求被创建完成，同时新的资源被创建。
#define Http_202 "202 Accepted"                       //供处理的请求已被接受，但是处理未完成。
#define Http_203 "203 Non-authoritative Information"  //文档已经正常地返回，但一些应答头可能不正确，因为使用的是文档的拷贝。
#define Http_204 "204 No Content"                     //没有新文档。浏览器应该继续显示原来的文档。如果用户定期地刷新页面，而Servlet可以确定用户文档足够新，这个状态代码是很有用的。
#define Http_205 "205 Reset Content"                  //没有新文档。但浏览器应该重置它所显示的内容。用来强制浏览器清除表单输入内容。
#define Http_206 "206 Partial Content"                //客户发送了一个带有Range头的GET请求，服务器完成了它。
// Http_3xx 3xx: 重定向
#define Http_300 "300 Multiple Choices"    //多重选择。链接列表。用户可以选择某链接到达目的地。最多允许五个地址。
#define Http_301 "301 Moved Permanently"   //所请求的页面已经转移至新的url。
#define Http_302 "302 Found"               //所请求的页面已经临时转移至新的url。
#define Http_303 "303 See Other"           //所请求的页面可在别的url下被找到。
#define Http_304 "304 Not Modified"        //未按预期修改文档。客户端有缓冲的文档并发出了一个条件性的请求（一般是提供If-Modified-Since头表示客户只想比指定日期更新的文档）。服务器告诉客户，原来缓冲的文档还可以继续使用。
#define Http_305 "305 Use Proxy"           //客户请求的文档应该通过Location头所指明的代理服务器提取。
#define Http_306 "306 Unused"              //此代码被用于前一版本。目前已不再使用，但是代码依然被保留。
#define Http_307 "307 Temporary Redirect"  //被请求的页面已经临时移至新的url。
// Http_4xx 4xx: 客户端错误
#define Http_400 "400 Bad Request"                    //服务器未能理解请求。
#define Http_401 "401 Unauthorized"                   //被请求的页面需要用户名和密码。
#define Http_402 "402 Payment Required"               //此代码尚无法使用。
#define Http_403 "403 Forbidden"                      //对被请求页面的访问被禁止。
#define Http_404 "404 Not Found"                      //服务器无法找到被请求的页面。
#define Http_405 "405 Method Not Allowed"             //请求中指定的方法不被允许。
#define Http_406 "406 Not Acceptable"                 //服务器生成的响应无法被客户端所接受。
#define Http_407 "407 Proxy Authentication Required"  //用户必须首先使用代理服务器进行验证，这样请求才会被处理。
#define Http_408 "408 Request Timeout"                //请求超出了服务器的等待时间。
#define Http_409 "409 Conflict"                       //由于冲突，请求无法被完成。
#define Http_410 "410 Gone"                           //被请求的页面不可用。
#define Http_411 "411 Length Required"                //"Content-Length" 未被定义。如果无此内容，服务器不会接受请求。
#define Http_412 "412 Precondition Failed"            //请求中的前提条件被服务器评估为失败。
#define Http_413 "413 Request Entity Too Large"       //由于所请求的实体的太大，服务器不会接受请求。
#define Http_414 "414 Request-url Too Long"           //由于url太长，服务器不会接受请求。当post请求被转换为带有很长的查询信息的get请求时，就会发生这种情况。
#define Http_415 "415 Unsupported Media Type"         //由于媒介类型不被支持，服务器不会接受请求。
#define Http_416 "416 "                               //服务器不能满足客户在请求中指定的Range头。
#define Http_417 "417 Expectation Failed"             //
// Http_5xx 5xx: 服务器错误
#define Http_500 "500 Internal Server Error"       //请求未完成。服务器遇到不可预知的情况。
#define Http_501 "501 Not Implemented"             //请求未完成。服务器不支持所请求的功能。
#define Http_502 "502 Bad Gateway"                 //请求未完成。服务器从上游服务器收到一个无效的响应。
#define Http_503 "503 Service Unavailable"         //请求未完成。服务器临时过载或当机。
#define Http_504 "504 Gateway Timeout"             //网关超时。
#define Http_505 "505 HTTP Version Not Supported"  //服务器不支持请求中指明的HTTP协议版本。

}  // namespace http

#endif // __HTTP_CODE
